/**
 * UIKit+GTExtensions.m
 *
 * The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy of the License 
 * at http://www.mozilla.org/MPL/
 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
 * either express or implied. See the License for the specific language governing rights and limitations 
 * under the License.
 *
 * The Original Code is gcast-toolbox4iphone.
 *
 * The Initial Developers of the Original Code is Giannandrea Castaldi.
 */
#import "UIKit+GTExtensions.h"

@implementation UIActivityIndicatorView (GTUIActivityIndicatorViewExtension)

- (id)initFlexibleWithFrame:(CGRect)aFrame activityIndicatorViewStyle:(UIActivityIndicatorViewStyle)aStyle {
  if ((self = [self initWithFrame:aFrame])) {
    self.activityIndicatorViewStyle = aStyle;
    self.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin |
                             UIViewAutoresizingFlexibleRightMargin |
                             UIViewAutoresizingFlexibleTopMargin |
                             UIViewAutoresizingFlexibleBottomMargin);
  }
  return self;
}
@end

@implementation UIViewController (GTUIViewControllerExtension)

- (NSArray*)splitAndOrderArray:(NSArray*)anArray usingCollation:(UILocalizedIndexedCollation*)aCollation stringSelector:(SEL)stringSelector {
  NSInteger sectionTitlesCount = [[aCollation sectionTitles] count];
  
  NSMutableArray *newSectionArray = [[NSMutableArray alloc] initWithCapacity:sectionTitlesCount];
  for (NSInteger index = 0; index < sectionTitlesCount; index++) {
    [newSectionArray addObject:[NSMutableArray array]];
  }
  for (id item in anArray) {
    NSInteger sectionNumber = [aCollation sectionForObject:item collationStringSelector:stringSelector];
    NSMutableArray *section = [newSectionArray objectAtIndex:sectionNumber];
    [section addObject:item];
  }
  for (NSInteger index = 0; index < sectionTitlesCount; index++) {
    NSMutableArray *section = [newSectionArray objectAtIndex:index];
    NSArray *sortedSection = [aCollation sortedArrayFromArray:section collationStringSelector:stringSelector];
    [newSectionArray replaceObjectAtIndex:index withObject:sortedSection];
  }	
  return [newSectionArray autorelease];
}
@end